package com.shop.cereshop.app.tencent.im.model.transfer;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 待领取转账表
 */
@ApiModel(description="待领取转账表")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransferPendingOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 自增ID
    */
    @ApiModelProperty(value="自增ID")
    private Long id;

    /**
    * 关联的转账单号
    */
    @ApiModelProperty(value="关联的转账单号")
    private String transferNo;

    /**
    * 付款方用户ID
    */
    @ApiModelProperty(value="付款方用户ID")
    private Long senderId;

    /**
    * 收款方用户ID
    */
    @ApiModelProperty(value="收款方用户ID")
    private Long receiverId;

    /**
    * 待领取金额
    */
    @ApiModelProperty(value="待领取金额")
    private BigDecimal amount;

    /**
    * 关联的IM消息ID（用于在聊天窗口定位和交互）
    */
    @ApiModelProperty(value="关联的IM消息ID（用于在聊天窗口定位和交互）")
    private String messageId;

    /**
    * 关联的IM消息key（用于在聊天窗口定位和交互）
    */
    @ApiModelProperty(value="关联的IM消息key（用于在聊天窗口定位和交互）")
    private String messageKey;

    /**
    * 领取状态: 1-待领取, 2-已领取, 3-已过期, 4-已退回
    */
    @ApiModelProperty(value="领取状态: 1-待领取, 2-已领取, 3-已过期, 4-已退回")
    private Byte status;

    /**
    * 过期时间（例如：创建时间+24小时）
    */
    @ApiModelProperty(value="过期时间（例如：创建时间+24小时）")
    private LocalDateTime expireTime;

    /**
    * 实际领取时间
    */
    @ApiModelProperty(value="实际领取时间")
    private LocalDateTime receiveTime;

    /**
    * 退款时间
    */
    @ApiModelProperty(value="退款时间")
    private LocalDateTime refundTime;

    /**
    * 创建时间
    */
    @ApiModelProperty(value="创建时间")
    private LocalDateTime createTime;
}